This invention relates to the field of computer based analysis of data. More particularly, this invention relates to extensible and upgradeable software analysis Structures.
Most monolithic integrated circuits are fabricated as batches of devices on a common substrate, typically referred to as a wafer. By having many such devices on a single wafer, the devices are easier to handle and fabrication costs can be reduced. Because the functional elements within each of the devices tend to be extremely small, they can be easily damaged. For example, particulate matter can be extremely detrimental to a device, regardless of whether that particulate matter is air borne or liquid borne. Any particles landing on the surface of the wafer, if they are not removed in a timely manner, may interfere with the fabrication process and cause the device to fail. In a similar fashion, scratches and other physical interferences with the desired fabrication process may also cause the devices to fail.
Because it is so important that the causes of such physical anomalies, generally referred to as defects herein, be identified and corrected as soon as possible, wafers are typically given a physical inspection at various stages of the fabrication cycle. Inspectors try to determine not only the type of defect, whether it be for example scratches or particulate matter, but also the source of the defect. In many cases the type of defect and the pattern of the defect can provide clues as to the source of the defect. Typically, such inspections have been done manually by a trained technician or engineer who studies one or more of the wafers under a microscope of some kind, searching for defects and trying to determine their origin from any clues that his experience may have taught him.
Manual inspection of each wafer is cumbersome and the results may be inaccurate and inconsistent due to factors such as fatigue, inexperience, or carelessness. Spatial signature analysis provides the ability to automatically track problems in an integrated circuit wafer process. Spatial signature analysis can be performed on wafers at different stages of the fabrication process to detect certain patterns of defects on them. Identified patterns can be mapped to a different process that the wafer underwent. For example, a defective chemical mechanical planarization process may cause long curved scratches. Thus process problems can be quickly detected automatically, without resorting to the scrutiny of a subset of the microscopic defects, which typically requires a scanning electron microscope review station. This in turn leads to quicker corrective actions, improving the yield and increasing the profit.
Unfortunately, spatial signature analysis has heretofore been a very inflexible process, and often tends to miss the forest for the trees. In other words, such automated routines have a tendency to over analyze defects individually, and do so repeatedly, without recognizing the patterns of defects that may be present. Thus, spatial signature analysis typically has a problem determining the nature of defects, tends to take too long to be used with modem equipment, and is not expandable or reconfigurable past its originally implemented capabilities and parameters. Additionally, there is no provision for users to selectively employ multiple versions of software modules within such a system, or maintain a baseline when upgrading or otherwise moving between different software modules.
What is needed, therefore, is a spatial signature analysis system that overcomes problems such as these.
The above and other needs are met by a system for determining an assigned classification for a set of physical events on a substrate. Sensors sense the physical events on the substrate and produce event data. A plug in rule module manager receives and manages any number of plug in rule modules. Each plug in rule module has an input, a local filter, an analyzer, and an output. The input receives the event data and confidence values from preceding plug in rule modules. The local filter analyzes the received confidence values from the preceding plug in rule modules and selectively by passes the plug in rule module based at least in part upon the received confidence values from the preceding plug in rule modules. The analyzer analyzes the event data in view of a given classification associated with the plug in rule module, and assigns a confidence value based at least in part upon how well the event data fits the given classification. The output provides the confidence value to subsequent plug in rule modules. A post processor receives the confidence values provided by the plug in rule modules, and makes a final selection of the assigned classification to be associated with the set of physical events from the given classifications based at least in part upon a comparison of the confidence values produced by all plug in rule modules.
In this manner, as many plug in rule modules as desired may be used. However, an increasing number of plug in rule modules does not necessarily produce a commensurate increase in processing time, because the local filter for a given plug in rule module can be set to selectively by pass the given plug in rule module if a confidence value assigned by a preceding plug in rule module is high enough. Thus, processing time is not wasted by processing subsequent plug in rule modules when a sufficiently high confidence has been achieved with a preceding classification. On the other hand, because all confidences assigned by the various plug in rule modules are arbitrated by a post processor, the system does not merely select the first classification that is associated with a relatively high confidence value. Thus, both an increase in general accuracy of the classification process, and a general decrease in the processing time are achieved.
In various preferred embodiments, the input of the plug in rule module is further adapted for receiving a user specified weight value, where the weight value selectively increases and decreases the confidence value produced by the plug in rule module. The input of the plug in rule module may also be adapted for receiving a user specified contrast value, where the contrast value selectively increases and decreases a resolution of the event data from other data collected from the substrate. In addition, the input of the plug in rule module may be adapted for receiving a user specified interference value, where the interference value selectively increases and decreases a grouping of the event data.
The system preferably includes a common data storage for receiving the event data and for providing the event data to the at least one plug in rule module. A compatibility module preferably manages multiple versions of a given plug in rule module within the system. In a first embodiment, the compatibility module has a user selectable setting for always using a reference version of the given plug in rule module. In a second embodiment, the compatibility module has a user selectable setting for always using a newest version of the given plug in rule module, and for adapting output from the newest version of the given plug in rule module to have a same baseline with respect to a reference version of the given plug in rule module. In a third embodiment, the compatibility module has a user selectable setting for always using a newest version of the given plug in rule module, regardless of whether output from the newest version of the given plug in rule module has a same baseline as a reference version of the given plug in rule module.